package com.xes.apps.ams.client.core.service;

import com.xes.ams.client.api.AttendData;
import com.xes.ams.client.api.AttendResult;
import com.xes.ams.client.api.AttendVo;
import com.xes.ams.client.api.BaseException;
import com.xes.ams.client.api.Result;

/***
 * 
 * @description 考勤数据服务类  
 * @author wjl
 * @ClassName: AttendService 
 * @Version 版本 
 * @ModifiedBy wjl
 * @Copyright xes
 * @date 2015年11月26日 下午2:22:23
 */
public interface AttendDataService {
	
	/***
	 * 下载当日预考勤数据
	 * @author wjl
	 * @title: downloadAttendData 
	 * @date 2015年11月26日 下午2:26:07 
	 * @param venueId 教学点Id 
	 * @return Map<String,AttendData>
	 */
	AttendResult downloadAttendDataByToday(String venueId) throws BaseException;
	
	/***
	 * 下载当日动态考勤数据
	 * @author wjl
	 * @title: downloadAttendDynamicDataByToday 
	 * @date 2015年11月26日 下午2:26:07 
	 * @param venueId 教学点Id 
	 * @return Map<String,AttendData>
	 */
	AttendResult downloadAttendDynamicDataByToday(String venueId) throws BaseException;
	
	/***
	 * 上传当时考勤数据
	 * @author wjl
	 * @title: uploadAttendDataByToday 
	 * @date 2015年11月27日 上午10:56:23 
	 * @param venueId 教学点Id 
	 * @return Map<String,AttendData>
	 */
	AttendResult uploadAttendDataByToday(String venueId) throws BaseException;
	
	/***
	 * 清空考勤数据缓存
	 * @param venueId
	 * @return
	 * @throws BaseException
	 */
	Boolean cleanAttendData(String venueId) throws BaseException;
	
	/***
	 * 修改考勤数据
	 * @param venueId
	 * @param cardNum
	 * @param data
	 * @return
	 * @throws BaseException
	 */
	Boolean modifyAttendData(String venueId, String cardNum, AttendVo data) throws BaseException;
	
	/***
	 * 开课前刷卡时间限制参数下载设置（分钟）默认60分钟
	 * @author wjl
	 * @title: queryBeginClassTime 
	 * @date 2015年12月3日 上午10:55:14 
	 * @return int
	 */
	Integer queryAttendTimeBegin(String areaCode, Integer timeDefault) throws BaseException;
	
	/***
	 * 考勤
	 * @author wjl
	 * @title: readCard 
	 * @date 2015年11月30日 下午5:43:26 
	 * @param card_num
	 * @return String
	 */
	Result<AttendData> doAttend(String card_num, String venueId, Integer beginTime) throws BaseException;
}
